In many computer-type applications, a plurality of items that are to be displayed to a user in a defined area on a display or the like are organized according to a layout. As may be appreciated, the defined area maybe a ‘window’ within the display devoted to some defined functional commonality. For example, if the defined area represents options for settings in connection with a computer application, the items may relate to displaying and setting such options. Likewise, if the defined area represents a shut-down interface in connection with a computer application, the items may relate to available choices for proceeding with a shut-down of such application. Thus, each item in such defined area likely has some relationship to the functional commonality, and such item may for example be a text entry box, a text display box, a selection button, a check mark line, a tab, a drop-down line, or the like.
Note that in at least some instances, each item is a ‘control’ and the layout is itself a ‘control’ containing the controls representing the items. As may be appreciated, using controls allows a designer to design the layout and the items therein by selecting pre-defined stock controls from an available toolbox containing same and then by modifying each selected control as necessary to result in a final form. Typically, each control includes functionality both to aid the designer in designing with same and to aid the user in using same, of course along with base functionality that allows the control to operate in the manner required.
In at least some arrangements, each item within a layout is positioned according to one or more positioning systems. In one positioning system, the layout for a defined area is a table layout that includes a plurality of defined cells arranged in defined rows and columns, and each item to be set forth within the layout is specified according to defined attributes including row and column placement and extent. In another positioning system, each item within the layout is defined according to position with respect to aspects of the layout and/or other items in the layout, such as for example a defined distance from a right side of the layout, a defined percentage of the total height of the layout down from a top side thereof, a defined distance from an item to the left, or a varying distance from such item to the left, among other things.
In many computer-type applications, layouts are dynamic in that each layout can change based on several factors. For example, a layout may change based on a user re-sizing same, based on an item being added thereto or removed therefrom, based on content displayed in connection with an item changing, based on a size of an item changing, etc.
Significantly, each time a dynamic layout changes, each of one or more items therein may require relocation in order to accommodate changes to the layout and/or other items therein. For example, if a layout is resized to be smaller, one or more items therein may have to be relocated to accommodate the smaller space, perhaps by being moved closer to other items therein. Likewise, if a particular item in a layout is resized to be larger, perhaps to accommodate additional text, one or more other items in the layout may have to be relocated to accommodate the larger item, perhaps by being moved away from such larger item.
Thus, in prior art systems and methods that employ the aforementioned positioning system where each item within the layout is defined according to position with respect to aspects of the layout and/or other items in the layout, certain constructs have been defined with regard to each item in a layout in an effort to locate and relocate such item. However, at least some of such constructs have been found to be overly complicated and/or cumbersome to employ in connection with a layout, especially when attempting to relocate each item in the layout in a time-efficient manner. In particular, it has been found that constructs that specify location of an item in a layout in terms of another item within such layout can be quite complex, especially for a designer designing the layout with the items, and also for a computing device attempting to relocate the items within the layout.
Accordingly, a need exists for a construct that is better suited to relocating items within a layout. In particular, a need exists for such a construct that is not complex and therefore can be employed in real-time or near-real-time in response to changes to a dynamic layout. Finally, a need exists for a method of relocating each item within a layout when a location for such item is specified at least partially based on such a construct.